Сервис Tsmsmscomm
Сервис tsmsmscomm предназначен для выполнения команд управления роутером через SMS. Доверенные номера телефонов и команды добавляются через веб-интерфейс роутера в разделе "Управление роутером по SMS". Ответ на выполненную команду приходит подписчикам на событие tsmsmscomm result.
Программный интерфейс
Сервис предоставляет методы на системной шине UBUS.
Метод run
Запускает shell-команду (номер и текст команды берутся из конфига, где прописаны разрешенные номера и команды).
| Параметр | Тип | Описание |
|---|---|---|
phone |
String | Номер телефона |
message |
String | Текст команды |
Пример использования:
ubus call tsmsmscomm run '{ "phone": "+7.....", "message": "sms command" }'
Ответ:
{
"status": "started"
}
Уведомление о результате
Сервис tsmsmscomm отправляет уведомление c результатом выполненной команды подписчикам на tsmsmscomm (событие: result).
Пример подписки через shell команду:
ubus subscribe 'tsmsmscomm'
Результат события tsmsmscomm result содержит следующие поля:
| Поле | Описание |
|---|---|
trusted_phone |
Доверенный номер телефона (с которого могут отправить SMS команду и на который отправляется результат выполненной команды) |
trusted_email |
Доверенный Email (на который отправляется текст результата выполненной команды, если он превышает 201 символ / больше чем 3 кусочка смс) |
sms_command |
Текст команды (текст смс команды отправляемый на телефон, текст команды связан с shell командой ключ-значение: текстовая_команда → shell команда) |
shell_command |
Текст shell команды для выполнения |
run |
false или true (Если true, то команда успешно выполнилась без ошибок) |
result |
Записывается текст при возникновении ошибки. Если команда выполнилась без ошибок, то поле остается пустым |
tmp_file |
Путь до файла с текстом выполненной команды |
Структура файлов сервиса
├── app.lua
├── tsmsmscomm.lua
└── util.lua
| Файл | Предпазначение |
|---|---|
| app.lua | Точка входа, основной файл, запускаемый сервисом в автозагрузке устройства |
| tsmsmscomm.lua | Содержит методы выполняющие команду управления роутером через SMS, а также уведомляет подписчиков на tsmsmscomm result событие |
| util.lua | Содержит вспомогательные функции |
Конфигурирование
Конфиг файл ( /etc/config/tsmsmscomm ):
config general 'general'
option debug '0'
config sms_command
option sms_command ''
option shell_command ''
config remote_control
option trusted_phone ''
option trusted_email ''
| Опция | Описание |
|---|---|
debug |
Включен или выключен debug |
sms_command (в секции sms_command) |
Текст SMS команды |
shell_command (в секции sms_command) |
Shell команда |
trusted_phone |
Телефон (от данного телефона может приходить команда) |
trusted_email |
Email (адрес куда отправляется результат, если он превышает 201 символ, больше чем 3 кусочка смс) |